In [1]:
import chart_studio
chart_studio.tools.set_credentials_file(username='mmendoza17', api_key='LY05z8X9UpGnqlzIa5QG')
In [2]:
import plotly.io as pio
pio.renderers.default = "notebook+pdf"
In [3]:
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import chart_studio.plotly as py
import plotly.graph_objects as go
import numpy as np

%matplotlib inline

Leer los datos

In [4]:
#read in data 
propesca_nacional=pd.read_csv('subsidios_permisos/B3_propesca.csv')
bienpesca_nacional=pd.read_csv('subsidios_permisos/bienpesca_2020.csv')
permisos_nacional=pd.read_csv('subsidios_permisos/Permisos_base_completa.csv')
propesca_update=pd.read_csv('subsidios_permisos/PROPESCA.csv')
propesca_update.head()

print(propesca_update.columns)
estados=propesca_update['Nombre Estado'].value_counts().index

print(estados)
Index(['Ejercicio', 'Programa', 'Componente', 'Incentivo',
       'Unidad Administrativa', 'Clave Presupuestaria', 'Clave Estado',
       'Nombre Estado', 'Clave Municipio', 'Nombre Municipio',
       'Clave Localidad', 'Nombre Localidad', 'Fecha de Inicio',
       'Fecha Termino', 'Modalidad o concepto de apoyo', 'Folio',
       'Nombre del Beneficiario o Razon Social', 'Genero', 'Pesqueria',
       'Estatus', 'Recurso Solicitado', 'Recurso Federal Aportado',
       'Recurso Estatal Aportado', 'RNPUE', 'RNP EMBARCACION',
       'Nombre de la Organización a la que Pertenecen las Solicitudes de Apoyo',
       'Tipo Persona de la Organizacion'],
      dtype='object')
Index(['SINALOA', 'VERACRUZ', 'SONORA', 'GUERRERO', 'CHIAPAS', 'NAYARIT',
       'TABASCO', 'TAMAULIPAS', 'MICHOACAN', 'CAMPECHE', 'YUCATAN',
       'BAJA CALIFORNIA SUR', 'OAXACA', 'JALISCO', 'QUINTANA ROO',
       'BAJA CALIFORNIA', 'COLIMA', 'HIDALGO', 'QUERETARO', 'CHIHUAHUA',
       'ZACATECAS', 'COAHUILA', 'GUANAJUATO', 'TLAXCALA', 'PUEBLA', 'MORELOS',
       'DURANGO', 'SAN LUIS POTOSI'],
      dtype='object')

Diccionario de Regiones Pesqueras

In [5]:
# lista de regiones pesqueras 
regiones_dic={}
# make dictionary of lists 
regiones_dic['Pacifico_Norte']=['BAJA CALIFORNIA','BAJA CALIFORNIA SUR', 'SONORA', 'SINALOA', 'NAYARIT' ]
regiones_dic['Pafico_Sur']=['JALISCO', 'COLIMA', 'MICHOACAN', 'GUERRERO', 'OAXACA', 'CHIAPAS']
regiones_dic['Golfo_Caribe']=['TAMAULIPAS','TABASCO','VERACRUZ', 'CAMPECHE', 'YUCATAN', 'QUINTANA ROO']
#aguas_cont= 

for region, est_values in regiones_dic.items():  # exclusion de estados
    # check which of value counts is not in this list 
    print(est_values)
    estados = [ele for ele in estados if ele not in est_values]
    #print(estados)
regiones_dic['Aguas_Continentales']= estados
['BAJA CALIFORNIA', 'BAJA CALIFORNIA SUR', 'SONORA', 'SINALOA', 'NAYARIT']
['JALISCO', 'COLIMA', 'MICHOACAN', 'GUERRERO', 'OAXACA', 'CHIAPAS']
['TAMAULIPAS', 'TABASCO', 'VERACRUZ', 'CAMPECHE', 'YUCATAN', 'QUINTANA ROO']

Diccionario , mapa de estados entre datos PROPESCA y BIENPESCA

In [6]:
print(bienpesca_nacional['Entidad'].value_counts()) 

print(propesca_update['Nombre Estado'].value_counts())

bienpesca_estados_sobrantes= ['Aguascalientes','Ciudad de México','México', 'Nuevo León'] # no se encuentran en datos de PROPESCA

bienpesca_estados=sorted(bienpesca_nacional['Entidad'].value_counts().index) 
bienpesca_estados=[ele for ele in bienpesca_estados if ele not in bienpesca_estados_sobrantes]
print(bienpesca_estados)

propesca_estados=sorted(propesca_update['Nombre Estado'].value_counts().index)
print(propesca_estados)

entidades_mapa = dict(zip(bienpesca_estados, propesca_estados))
print(entidades_mapa)

#THIS DOES THE REPLACEMENT ONCE SO THE STATES MATCH 
bienpesca_nacional.replace({'Entidad' : entidades_mapa}, inplace=True )
Sinaloa                            34867
Veracruz de Ignacio de la Llave    24775
Tamaulipas                         15006
Guerrero                           13799
Yucatán                            13476
Chiapas                            13082
Tabasco                            12890
Sonora                             12406
Campeche                            9088
Nayarit                             8021
Oaxaca                              6517
Baja California Sur                 6004
Baja California                     5243
Jalisco                             4702
Michoacán de Ocampo                 4642
Guanajuato                          1430
Quintana Roo                        1203
Colima                              1047
Hidalgo                              824
Morelos                              544
Querétaro                            411
Chihuahua                            400
Zacatecas                            397
México                               249
Durango                              232
San Luis Potosí                      204
Puebla                               100
Coahuila de Zaragoza                  98
Tlaxcala                              83
Aguascalientes                        70
Nuevo León                            31
Ciudad de México                      10
Name: Entidad, dtype: int64
SINALOA                101161
VERACRUZ                64427
SONORA                  30278
GUERRERO                26327
CHIAPAS                 24126
NAYARIT                 19474
TABASCO                 18889
TAMAULIPAS              17888
MICHOACAN               17480
CAMPECHE                16339
YUCATAN                 15804
BAJA CALIFORNIA SUR     13970
OAXACA                  11509
JALISCO                 11049
QUINTANA ROO             3278
BAJA CALIFORNIA          2341
COLIMA                   2322
HIDALGO                  2131
QUERETARO                1239
CHIHUAHUA                1104
ZACATECAS                 534
COAHUILA                  399
GUANAJUATO                150
TLAXCALA                  136
PUEBLA                     53
MORELOS                    45
DURANGO                    15
SAN LUIS POTOSI            14
Name: Nombre Estado, dtype: int64
['Baja California', 'Baja California Sur', 'Campeche', 'Chiapas', 'Chihuahua', 'Coahuila de Zaragoza', 'Colima', 'Durango', 'Guanajuato', 'Guerrero', 'Hidalgo', 'Jalisco', 'Michoacán de Ocampo', 'Morelos', 'Nayarit', 'Oaxaca', 'Puebla', 'Querétaro', 'Quintana Roo', 'San Luis Potosí', 'Sinaloa', 'Sonora', 'Tabasco', 'Tamaulipas', 'Tlaxcala', 'Veracruz de Ignacio de la Llave', 'Yucatán', 'Zacatecas']
['BAJA CALIFORNIA', 'BAJA CALIFORNIA SUR', 'CAMPECHE', 'CHIAPAS', 'CHIHUAHUA', 'COAHUILA', 'COLIMA', 'DURANGO', 'GUANAJUATO', 'GUERRERO', 'HIDALGO', 'JALISCO', 'MICHOACAN', 'MORELOS', 'NAYARIT', 'OAXACA', 'PUEBLA', 'QUERETARO', 'QUINTANA ROO', 'SAN LUIS POTOSI', 'SINALOA', 'SONORA', 'TABASCO', 'TAMAULIPAS', 'TLAXCALA', 'VERACRUZ', 'YUCATAN', 'ZACATECAS']
{'Baja California': 'BAJA CALIFORNIA', 'Baja California Sur': 'BAJA CALIFORNIA SUR', 'Campeche': 'CAMPECHE', 'Chiapas': 'CHIAPAS', 'Chihuahua': 'CHIHUAHUA', 'Coahuila de Zaragoza': 'COAHUILA', 'Colima': 'COLIMA', 'Durango': 'DURANGO', 'Guanajuato': 'GUANAJUATO', 'Guerrero': 'GUERRERO', 'Hidalgo': 'HIDALGO', 'Jalisco': 'JALISCO', 'Michoacán de Ocampo': 'MICHOACAN', 'Morelos': 'MORELOS', 'Nayarit': 'NAYARIT', 'Oaxaca': 'OAXACA', 'Puebla': 'PUEBLA', 'Querétaro': 'QUERETARO', 'Quintana Roo': 'QUINTANA ROO', 'San Luis Potosí': 'SAN LUIS POTOSI', 'Sinaloa': 'SINALOA', 'Sonora': 'SONORA', 'Tabasco': 'TABASCO', 'Tamaulipas': 'TAMAULIPAS', 'Tlaxcala': 'TLAXCALA', 'Veracruz de Ignacio de la Llave': 'VERACRUZ', 'Yucatán': 'YUCATAN', 'Zacatecas': 'ZACATECAS'}

Exploracion de los datos nacionales

In [7]:
#filter for region 

#TO DO: key mapping estados BIENPESCA Y PROPESCA


#APROBADOS VS NO APROBADOS POR REGION
for region, est_values in regiones_dic.items():
    #filter for region 
    propesca_region= propesca_update[propesca_update['Nombre Estado'].isin(est_values)]
    
    # aprobados vs no aprobados 
    print(propesca_region['Estatus'].value_counts()) 
    fig =px.histogram(propesca_region, x="Nombre Estado", color="Estatus", title='Registros Propesca en ' + region).update_xaxes(categoryorder='total descending')
    fig.show()
    
NO APROBADO    86230
APROBADO       80994
Name: Estatus, dtype: int64
NO APROBADO    48243
APROBADO       44570
Name: Estatus, dtype: int64
APROBADO       68555
NO APROBADO    68070
Name: Estatus, dtype: int64
NO APROBADO    3021
APROBADO       2799
Name: Estatus, dtype: int64
In [8]:
#filter by aprobados 
aprobados= propesca_update[propesca_update['Estatus']=='APROBADO']
no_aprobados=propesca_update[propesca_update['Estatus']=='NO APROBADO']
print(aprobados)
    


#sunburst de regiones donde se encuentran beneficiarios aprobados unicos***
for region, est_values in regiones_dic.items():
    #filter for region 
    propesca_region= aprobados[aprobados['Nombre Estado'].isin(est_values)]
    ben_unicos=propesca_region.drop_duplicates(subset=['Nombre del Beneficiario o Razon Social', 'Nombre Localidad'], keep='last')
    
    #sunburst de regiones 
    
    region=ben_unicos.groupby(by=['Nombre Estado', 'Nombre Municipio', 'Nombre Localidad']).count()[["Pesqueria"]].rename(columns={"Pesqueria":"count"})
    region.reset_index(inplace=True)

    fig = px.sunburst(region,
                      path=['Nombre Estado', 'Nombre Municipio', 'Nombre Localidad'],
                      values='count',
                      title="PROPESCA regiones",
                      width=750, height=750)
    fig.show()


    
    
#numero de beneficiarios unicos y distribucion de num de anios que han recibido propesca 
#ben_unicos_count= propesca.groupby(by=['beneficiario', 'localidad']).size().reset_index().rename(columns={0:'count'})
        Ejercicio                                        Programa  \
13           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
14           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
15           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
16           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
17           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
...           ...                                             ...   
402473       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402474       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402476       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402480       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402481       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   

                                             Componente  Incentivo  \
13      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
14      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
15      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
16      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
17      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
...                                                 ...        ...   
402473  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402474  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402476  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402480  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402481  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   

                              Unidad Administrativa Clave Presupuestaria  \
13      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
14      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
15      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
16      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
17      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
...                                             ...                  ...   
402473  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402474  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402476  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402480  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402481  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   

        Clave Estado    Nombre Estado  Clave Municipio Nombre Municipio  ...  \
13                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
14                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
15                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
16                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
17                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
...              ...              ...              ...              ...  ...   
402473            32        ZACATECAS            32045      TEPECHITLAN  ...   
402474            32        ZACATECAS            32045      TEPECHITLAN  ...   
402476            32        ZACATECAS            32045      TEPECHITLAN  ...   
402480            32        ZACATECAS            32049       VALPARAISO  ...   
402481            32        ZACATECAS            32043       SUSTICACAN  ...   

        Genero      Pesqueria   Estatus Recurso Solicitado  \
13           M  ESCAMA MARINA  APROBADO               7000   
14           M  ESCAMA MARINA  APROBADO               7000   
15           H  ESCAMA MARINA  APROBADO               7000   
16           M  ESCAMA MARINA  APROBADO               7000   
17           M  ESCAMA MARINA  APROBADO               7000   
...        ...            ...       ...                ...   
402473       H        TILAPIA  APROBADO               7200   
402474       H        TILAPIA  APROBADO               7200   
402476       H        TILAPIA  APROBADO               7200   
402480       H          CARPA  APROBADO               7200   
402481       H        TILAPIA  APROBADO               7200   

       Recurso Federal Aportado Recurso Estatal Aportado       RNPUE  \
13                         8000                        0   203010103   
14                         8000                        0   203010103   
15                         8000                        0   203010103   
16                         8000                        0   203010103   
17                         8000                        0   203010103   
...                         ...                      ...         ...   
402473                     7200                        0  3201000696   
402474                     7200                        0  3201000696   
402476                     7200                        0  3201000696   
402480                     7200                        0  3201000373   
402481                     7200                        0  3201000472   

       RNP EMBARCACION  \
13             2015741   
14             2015774   
15             2015718   
16             2015808   
17             2015816   
...                ...   
402473        32010696   
402474        32010696   
402476        32010696   
402480        32010373   
402481        32010472   

       Nombre de la Organización a la que Pertenecen las Solicitudes de Apoyo  \
13                                       EL MAYOR CUCAPAH                       
14                                       EL MAYOR CUCAPAH                       
15                                       EL MAYOR CUCAPAH                       
16                                       EL MAYOR CUCAPAH                       
17                                       EL MAYOR CUCAPAH                       
...                                                   ...                       
402473  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402474  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402476  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402480                             PRESA MANUEL FELGUEREZ                       
402481  PESCADORES DE TLALTICUALOYA SUSTICACAN ZACATEC...                       

       Tipo Persona de la Organizacion  
13                               MORAL  
14                               MORAL  
15                               MORAL  
16                               MORAL  
17                               MORAL  
...                                ...  
402473                           MORAL  
402474                           MORAL  
402476                           MORAL  
402480                           MORAL  
402481                           MORAL  

[196918 rows x 27 columns]
In [32]:
#sunburst de distribucion de genero ***

#sunburst de distribucion de genero ***

#initialize empty df for regions 

fem_ratios_PP = pd.DataFrame(columns = ['Nombre Estado', 'H', 'M', 'FemaleRatio', 'MaleRatio'])
fem_ratios_BP = pd.DataFrame(columns = ['Nombre Estado', 'H', 'M', 'FemaleRatio', 'MaleRatio'])

for region, est_values in regiones_dic.items():
    print(region)
    #filter for region 
    #APROBADOS FUE CAMBIADO DE NOMBRE ESTADO A ENTIDAD, 
    propesca_region= aprobados[aprobados['Nombre Estado'].isin(est_values)]
    ben_unicos=propesca_region.drop_duplicates(subset=['Nombre del Beneficiario o Razon Social', 'Nombre Localidad'], keep='last')
    
    #ratio entre hombres y mujeres por entidad 
    #groupby entidad y genero and do a count on this 
    res=ben_unicos.pivot_table(index='Nombre Estado', columns='Genero', aggfunc='size', fill_value=0)

    # calculate ratios
    sums = res[['M', 'H']].sum(axis=1)
    res['FemaleRatio'] = res['M'] / sums
    res['MaleRatio'] = res['H'] / sums
    res.reset_index(inplace=True)
    
    print(res)
    print(res.columns)
    
    if (region== 'Aguas_Continentales'):
        print('Skip aguas continentales')
    else: 
        fem_ratios_PP=fem_ratios_PP.append(res, ignore_index=True)

    fig = px.sunburst(ben_unicos,
                      path=['Genero','Nombre Estado'],
                      title="PROPESCA regiones sexo" + region,
                      width=750, height=750)
    fig.show()
    
    
    fig = px.bar(res, x='Nombre Estado', y=['MaleRatio', 'FemaleRatio'], title='Ratio Hombre Mujer PROPESCA' + region)
    fig.show()
    
    # ahora lo mismo pero para BIENPESCA 
    bienpesca_region= bienpesca_nacional[bienpesca_nacional['Entidad'].isin(est_values)]
    res_BP=bienpesca_region.pivot_table(index='Entidad', columns='Sexo', aggfunc='size', fill_value=0)
    print(res_BP)

    # calculate ratios
    sums = res_BP[['Femenino', 'Masculino']].sum(axis=1)
    res_BP['FemaleRatio'] = res_BP['Femenino'] / sums
    res_BP['MaleRatio'] = res_BP['Masculino'] / sums
    res_BP.reset_index(inplace=True)
    
    if (region== 'Aguas_Continentales'):
        print('Skip aguas continentales')
    else: 
        fem_ratios_BP=fem_ratios_BP.append(res_BP, ignore_index=True)
    
    fig = px.bar(res_BP, x='Entidad', y=['MaleRatio', 'FemaleRatio'], title='Ratio Hombre Mujer BIENPESCA' + region)
    fig.show()
    
    
# to do: guardar ratios de hombre o mujer ( append ) y graficar con un boxplot cuales son los outliers, etc. 

print(fem_ratios_PP)
print(fem_ratios_BP)

fig = px.box(fem_ratios_PP, y="FemaleRatio", points="all" , hover_data= ['Nombre Estado'])
fig.show()

fig = px.box(fem_ratios_BP, y="FemaleRatio", points="all", hover_data= ['Entidad'])
fig.show()

#bosplot where dots are defined by states and we need female ratios (one column)
    
Pacifico_Norte
Genero        Nombre Estado      H     M  FemaleRatio  MaleRatio
0           BAJA CALIFORNIA    729   141     0.162069   0.837931
1       BAJA CALIFORNIA SUR   3053   584     0.160572   0.839428
2                   NAYARIT   4984   484     0.088515   0.911485
3                   SINALOA  21661  3733     0.147003   0.852997
4                    SONORA   7013  1304     0.156787   0.843213
Index(['Nombre Estado', 'H', 'M', 'FemaleRatio', 'MaleRatio'], dtype='object', name='Genero')
Sexo                 Femenino  Masculino
Entidad                                 
BAJA CALIFORNIA           839       4404
BAJA CALIFORNIA SUR      1143       4861
NAYARIT                   811       7210
SINALOA                  6509      28358
SONORA                   2102      10304
Pafico_Sur
Genero Nombre Estado     H     M  FemaleRatio  MaleRatio
0            CHIAPAS  7534   491     0.061184   0.938816
1             COLIMA   570    86     0.131098   0.868902
2           GUERRERO  4325  3082     0.416093   0.583907
3            JALISCO  2735   335     0.109121   0.890879
4          MICHOACAN  4314   360     0.077022   0.922978
5             OAXACA  3450   230     0.062500   0.937500
Index(['Nombre Estado', 'H', 'M', 'FemaleRatio', 'MaleRatio'], dtype='object', name='Genero')
Sexo       Femenino  Masculino
Entidad                       
CHIAPAS        1845      11237
COLIMA          145        902
GUERRERO       5115       8684
JALISCO         610       4092
MICHOACAN       489       4153
OAXACA          921       5596
Golfo_Caribe
Genero Nombre Estado      H     M  FemaleRatio  MaleRatio
0           CAMPECHE   4657   165     0.034218   0.965782
1       QUINTANA ROO    982    12     0.012072   0.987928
2            TABASCO   4512  1492     0.248501   0.751499
3         TAMAULIPAS   4304   906     0.173896   0.826104
4           VERACRUZ  12806  5907     0.315663   0.684337
5            YUCATAN   5093   207     0.039057   0.960943
Index(['Nombre Estado', 'H', 'M', 'FemaleRatio', 'MaleRatio'], dtype='object', name='Genero')
Sexo          Femenino  Masculino
Entidad                          
CAMPECHE           437       8651
QUINTANA ROO        28       1175
TABASCO           3919       8971
TAMAULIPAS        5984       9022
VERACRUZ          7983      16792
YUCATAN            302      13174
Aguas_Continentales
Genero    Nombre Estado    H    M  FemaleRatio  MaleRatio
0             CHIHUAHUA  265   16     0.056940   0.943060
1              COAHUILA  107    3     0.027273   0.972727
2               DURANGO    9    0     0.000000   1.000000
3            GUANAJUATO   20    3     0.130435   0.869565
4               HIDALGO  269  178     0.398210   0.601790
5             QUERETARO  180   85     0.320755   0.679245
6       SAN LUIS POTOSI   11    0     0.000000   1.000000
7              TLAXCALA   41    0     0.000000   1.000000
8             ZACATECAS  197    2     0.010050   0.989950
Index(['Nombre Estado', 'H', 'M', 'FemaleRatio', 'MaleRatio'], dtype='object', name='Genero')
Skip aguas continentales
Sexo             Femenino  Masculino
Entidad                             
CHIHUAHUA              44        356
COAHUILA                7         91
DURANGO                36        196
GUANAJUATO            185       1245
HIDALGO               215        609
MORELOS                80        464
PUEBLA                 17         83
QUERETARO             115        296
SAN LUIS POTOSI        22        182
TLAXCALA               17         66
ZACATECAS              15        382
Skip aguas continentales
Genero        Nombre Estado      H     M  FemaleRatio  MaleRatio
0           BAJA CALIFORNIA    729   141     0.162069   0.837931
1       BAJA CALIFORNIA SUR   3053   584     0.160572   0.839428
2                   NAYARIT   4984   484     0.088515   0.911485
3                   SINALOA  21661  3733     0.147003   0.852997
4                    SONORA   7013  1304     0.156787   0.843213
5                   CHIAPAS   7534   491     0.061184   0.938816
6                    COLIMA    570    86     0.131098   0.868902
7                  GUERRERO   4325  3082     0.416093   0.583907
8                   JALISCO   2735   335     0.109121   0.890879
9                 MICHOACAN   4314   360     0.077022   0.922978
10                   OAXACA   3450   230     0.062500   0.937500
11                 CAMPECHE   4657   165     0.034218   0.965782
12             QUINTANA ROO    982    12     0.012072   0.987928
13                  TABASCO   4512  1492     0.248501   0.751499
14               TAMAULIPAS   4304   906     0.173896   0.826104
15                 VERACRUZ  12806  5907     0.315663   0.684337
16                  YUCATAN   5093   207     0.039057   0.960943
                Entidad  FemaleRatio  Femenino    H    M  MaleRatio  \
0       BAJA CALIFORNIA     0.160023     839.0  NaN  NaN   0.839977   
1   BAJA CALIFORNIA SUR     0.190373    1143.0  NaN  NaN   0.809627   
2               NAYARIT     0.101110     811.0  NaN  NaN   0.898890   
3               SINALOA     0.186681    6509.0  NaN  NaN   0.813319   
4                SONORA     0.169434    2102.0  NaN  NaN   0.830566   
5               CHIAPAS     0.141033    1845.0  NaN  NaN   0.858967   
6                COLIMA     0.138491     145.0  NaN  NaN   0.861509   
7              GUERRERO     0.370679    5115.0  NaN  NaN   0.629321   
8               JALISCO     0.129732     610.0  NaN  NaN   0.870268   
9             MICHOACAN     0.105343     489.0  NaN  NaN   0.894657   
10               OAXACA     0.141323     921.0  NaN  NaN   0.858677   
11             CAMPECHE     0.048085     437.0  NaN  NaN   0.951915   
12         QUINTANA ROO     0.023275      28.0  NaN  NaN   0.976725   
13              TABASCO     0.304034    3919.0  NaN  NaN   0.695966   
14           TAMAULIPAS     0.398774    5984.0  NaN  NaN   0.601226   
15             VERACRUZ     0.322220    7983.0  NaN  NaN   0.677780   
16              YUCATAN     0.022410     302.0  NaN  NaN   0.977590   

    Masculino Nombre Estado  
0      4404.0           NaN  
1      4861.0           NaN  
2      7210.0           NaN  
3     28358.0           NaN  
4     10304.0           NaN  
5     11237.0           NaN  
6       902.0           NaN  
7      8684.0           NaN  
8      4092.0           NaN  
9      4153.0           NaN  
10     5596.0           NaN  
11     8651.0           NaN  
12     1175.0           NaN  
13     8971.0           NaN  
14     9022.0           NaN  
15    16792.0           NaN  
16    13174.0           NaN  

comparar datos PROPESCA nuevos y viejos

In [10]:
#Verificar si los datos nuevos y viejos coinciden 
aprobados['beneficiario']=aprobados['Nombre del Beneficiario o Razon Social'].str.strip()
propesca_nacional["beneficiario"]=propesca_nacional["beneficiario"].str.strip()
print(propesca_nacional["beneficiario"])
print(aprobados['beneficiario'])

propesca_comp=pd.merge(propesca_nacional, aprobados, on='beneficiario', how='left')

print(propesca_comp.shape)
print(propesca_nacional.shape)
print(aprobados.shape)


#conteo por anio
print(propesca_nacional['año'].value_counts())
print(aprobados['Ejercicio'].value_counts())

#beneficiarios unicos 

# look at specific entidad y localidad to see if the beneficiaries are the same 
ben_unicos_count= propesca_nacional.groupby(by=['beneficiario', 'localidad']).size().reset_index().rename(columns={0:'count'})
print(ben_unicos_count)

ben_unicos2_count=aprobados.groupby(by=['beneficiario', 'Nombre Localidad']).size().reset_index().rename(columns={0:'count'})
print(ben_unicos2_count)
/Users/mmendoza/opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning:


A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

0               DELFINA ZAMORA MORALES
1                FELIX VARGAS RENTERIA
2                ISABEL TELLEZ GALEANA
3            AMANCIO HERNANDEZ ROSALES
4              ANGELICA AGUILAR TELLEZ
                      ...             
146819        GUADALUPE GUEVARA GARCIA
146820    OSCAR SOCORRO GALLEGOS REYES
146821        GUADALUPE GUEVARA GARCIA
146822    LUIS ARMANDO GONZALEZ ARROYO
146823           LUIS RAUL LOYA BARRIO
Name: beneficiario, Length: 146824, dtype: object
13            SANDRA LUZ GALLEGOS BARRIGA
14        MARIA DE JESUS AGUILAR GONZALEZ
15                     RAMON SOTO GODINEZ
16                 JUANA AGUILAR GONZALEZ
17                     ADA TAFOYA AGUILAR
                       ...               
402473        JOSE DE JESUS MUNOZ MUNETON
402474               LUIS ZARABIA ROSALES
402476           TERESO SANTILLAN NARANJO
402480              ANTONIO DE HARO SALAS
402481              ADRIAN JUAREZ SALAZAR
Name: beneficiario, Length: 196918, dtype: object
(360889, 79)
(146824, 52)
(196918, 28)
2016    37713
2017    37646
2018    33838
2015    24462
2014    13165
Name: año, dtype: int64
2019    50094
2016    37713
2017    37646
2018    33838
2015    24462
2014    13165
Name: Ejercicio, dtype: int64
                            beneficiario                         localidad  \
0           AALAN BERNARDO LOPEZ NEVAREZ        PUERTO ADOLFO LOPEZ MATEOS   
1              AARON ABDON OSUNA AGUILAR                          MAZATLAN   
2                AARON ALDAZABA MARTINEZ                      LAS HIGUERAS   
3      AARON ALFONSO MARTINEZ BETANCOURT                          MAZATLAN   
4              AARON ALFREDO CAMPA OJEDA                   HEROICA GUAYMAS   
...                                  ...                               ...   
91851        ZURIXADAI VERDUGO VELAZQUEZ                       EL COLORADO   
91852        ZURY SAMANTHA GRANDA GARCIA                          ALVARADO   
91853         ZURY ZAMANTA GRANDA GARCIA                          ALVARADO   
91854     ZUYUKI GUADALUPE MARTINEZ RAZO                          ALVARADO   
91855   ZUZUKI LIZBETH VALENZUELA LLANES  LAS PUENTES (GUADALUPE VICTORIA)   

       count  
0          2  
1          2  
2          1  
3          2  
4          1  
...      ...  
91851      3  
91852      1  
91853      1  
91854      1  
91855      1  

[91856 rows x 3 columns]
                            beneficiario                Nombre Localidad  \
0           AALAN BERNARDO LOPEZ NEVAREZ      PUERTO ADOLFO LOPEZ MATEOS   
1              AARON ABDON OSUNA AGUILAR                        MAZATLAN   
2              AARON ABEL MILLAN BARREDA                PAREDON COLORADO   
3                   AARON ABOITES RIVERA              GUADALUPE VICTORIA   
4                AARON ALDAZABA MARTINEZ                    LAS HIGUERAS   
...                                  ...                             ...   
113432       ZURIXADAI VERDUGO VELAZQUEZ                     EL COLORADO   
113433       ZURY SAMANTHA GRANDA GARCIA                        ALVARADO   
113434        ZURY ZAMANTA GRANDA GARCIA                        ALVARADO   
113435    ZUYUKI GUADALUPE MARTINEZ RAZO                        ALVARADO   
113436  ZUZUKI LIZBETH VALENZUELA LLANES  LAS PUENTES GUADALUPE VICTORIA   

        count  
0           2  
1           2  
2           1  
3           1  
4           2  
...       ...  
113432      3  
113433      2  
113434      1  
113435      1  
113436      2  

[113437 rows x 3 columns]
In [11]:
print(propesca_nacional['año'].value_counts())
print(aprobados['Ejercicio'].value_counts())

print(aprobados)
#conteo por anio
2016    37713
2017    37646
2018    33838
2015    24462
2014    13165
Name: año, dtype: int64
2019    50094
2016    37713
2017    37646
2018    33838
2015    24462
2014    13165
Name: Ejercicio, dtype: int64
        Ejercicio                                        Programa  \
13           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
14           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
15           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
16           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
17           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
...           ...                                             ...   
402473       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402474       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402476       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402480       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402481       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   

                                             Componente  Incentivo  \
13      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
14      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
15      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
16      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
17      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
...                                                 ...        ...   
402473  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402474  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402476  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402480  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402481  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   

                              Unidad Administrativa Clave Presupuestaria  \
13      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
14      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
15      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
16      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
17      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
...                                             ...                  ...   
402473  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402474  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402476  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402480  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402481  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   

        Clave Estado    Nombre Estado  Clave Municipio Nombre Municipio  ...  \
13                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
14                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
15                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
16                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
17                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
...              ...              ...              ...              ...  ...   
402473            32        ZACATECAS            32045      TEPECHITLAN  ...   
402474            32        ZACATECAS            32045      TEPECHITLAN  ...   
402476            32        ZACATECAS            32045      TEPECHITLAN  ...   
402480            32        ZACATECAS            32049       VALPARAISO  ...   
402481            32        ZACATECAS            32043       SUSTICACAN  ...   

            Pesqueria   Estatus Recurso Solicitado Recurso Federal Aportado  \
13      ESCAMA MARINA  APROBADO               7000                     8000   
14      ESCAMA MARINA  APROBADO               7000                     8000   
15      ESCAMA MARINA  APROBADO               7000                     8000   
16      ESCAMA MARINA  APROBADO               7000                     8000   
17      ESCAMA MARINA  APROBADO               7000                     8000   
...               ...       ...                ...                      ...   
402473        TILAPIA  APROBADO               7200                     7200   
402474        TILAPIA  APROBADO               7200                     7200   
402476        TILAPIA  APROBADO               7200                     7200   
402480          CARPA  APROBADO               7200                     7200   
402481        TILAPIA  APROBADO               7200                     7200   

       Recurso Estatal Aportado       RNPUE RNP EMBARCACION  \
13                            0   203010103         2015741   
14                            0   203010103         2015774   
15                            0   203010103         2015718   
16                            0   203010103         2015808   
17                            0   203010103         2015816   
...                         ...         ...             ...   
402473                        0  3201000696        32010696   
402474                        0  3201000696        32010696   
402476                        0  3201000696        32010696   
402480                        0  3201000373        32010373   
402481                        0  3201000472        32010472   

       Nombre de la Organización a la que Pertenecen las Solicitudes de Apoyo  \
13                                       EL MAYOR CUCAPAH                       
14                                       EL MAYOR CUCAPAH                       
15                                       EL MAYOR CUCAPAH                       
16                                       EL MAYOR CUCAPAH                       
17                                       EL MAYOR CUCAPAH                       
...                                                   ...                       
402473  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402474  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402476  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402480                             PRESA MANUEL FELGUEREZ                       
402481  PESCADORES DE TLALTICUALOYA SUSTICACAN ZACATEC...                       

       Tipo Persona de la Organizacion                     beneficiario  
13                               MORAL      SANDRA LUZ GALLEGOS BARRIGA  
14                               MORAL  MARIA DE JESUS AGUILAR GONZALEZ  
15                               MORAL               RAMON SOTO GODINEZ  
16                               MORAL           JUANA AGUILAR GONZALEZ  
17                               MORAL               ADA TAFOYA AGUILAR  
...                                ...                              ...  
402473                           MORAL      JOSE DE JESUS MUNOZ MUNETON  
402474                           MORAL             LUIS ZARABIA ROSALES  
402476                           MORAL         TERESO SANTILLAN NARANJO  
402480                           MORAL            ANTONIO DE HARO SALAS  
402481                           MORAL            ADRIAN JUAREZ SALAZAR  

[196918 rows x 28 columns]

Exploracion de PROPESCA y BIENPESCA 2020

In [12]:
#filter for golfo de mexico 
GM_estados=['TAMAULIPAS','TABASCO','VERACRUZ', 'CAMPECHE', 'YUCATAN'] 
propesca=propesca_nacional[propesca_nacional['entidad'].isin(GM_estados)]

gm_estados=['Tamaulipas','Tabasco','Veracruz de Ignacio de la Llave', 'Campeche', 'Yucatán']  #,'QUINTANA ROO']
bienpesca=bienpesca_nacional[bienpesca_nacional['Entidad'].isin(gm_estados)]

print(propesca.columns)
print(propesca.shape)


#numero de beneficiarios unicos y distribucion de num de anios que han recibido propesca 
ben_unicos_count= propesca.groupby(by=['beneficiario', 'localidad']).size().reset_index().rename(columns={0:'count'})
print(ben_unicos_count)

#beneficiarios que recibieron PROPESCA por 2 anios o mas 
print('Beneficiarios que recibieron beneficios por 2 años o mas')
propesca['count']= propesca.groupby(by=['beneficiario', 'localidad'])['año'].transform('count')

propesca['comp_ids']= propesca.groupby(by=['beneficiario', 'localidad']).grouper.group_info[0]
#beneficiarios que recibieron PROPESCA por 2 anios o mas
ben_anios_multiples= propesca[propesca['count']>=2]
ben_unsoloanio= propesca[propesca['count']==1]
print(ben_anios_multiples)

ben_unicos=propesca.drop_duplicates(subset=['beneficiario', 'localidad'], keep='last')
print(ben_unicos)

#distribucion de numero de anios de subsidios por beneficiario, (excluyente)
fig = px.histogram(ben_unicos_count, x="count", title='Distribucion de numero de años de subsidio por beneficiario')
fig.show()
url=py.iplot(fig, filename='PROPESCAyeardistributionperperson')

# # distribucion de beneficio por anio unicamente incluyendo beneficiarios que obtuvieron beneficio 2 veces o mas 
# fig=px.histogram(ben_anios_multiples, x='año', color='entidad', title='Numero de Beneficios por año')
# fig.show()
# url=py.iplot(fig, filename='PROPESCAyeardistributionmultiplesanios')

# #distribucion de beneficio por anio unicamente incluyendo beneficiarios que obtuvieron beneficio una vez solamente 
# fig=px.histogram(ben_unsoloanio, x='año', color='entidad', title='Numero de Beneficios por año')
# fig.show()
# url=py.iplot(fig, filename='PROPESCAyeardistributionsolounanio')

#distribucion de beneficios por año y por entidad
fig=px.histogram(propesca, x='año', color='entidad', title='Numero de Beneficios por año')
fig.show()
url=py.iplot(fig, filename='PROPESCAyeardistributiontotal')

##add BIENPESCA AS A 2020 COLUMN
bienpesca['año']=2020
bienpesca['entidad']=bienpesca['Entidad'] #copy of this to replace later 
bienpesca.replace({'entidad' : { 'Tamaulipas':'TAMAULIPAS','Tabasco':'TABASCO','Veracruz de Ignacio de la Llave':'VERACRUZ', 'Campeche':'CAMPECHE', 'Yucatán':'YUCATAN'}}, inplace=True)
print(bienpesca.shape)
print(propesca.shape)
print('Merging dataframes')
union_propesca_bienpesca=propesca.merge(bienpesca[['entidad','año']], on=['año','entidad'], how='outer') # need entidad and anio and merge them 
print(union_propesca_bienpesca.shape)

#PROPESCA Y BIENPESCA EN AÑOS 
fig=px.histogram(union_propesca_bienpesca, x='año', color='entidad', title='Numero de Beneficios por año')
fig.show()
#url=py.iplot(fig, filename='PROPESCAMASBIENPESCAyeardistributiontotal')

#donde estan estos pescadores (unicos) ? sunburst de regiones  
region=ben_unicos.groupby(by=['entidad', 'municipio', 'localidad']).count()[["zona"]].rename(columns={"zona":"count"})
print(region)
region.reset_index(inplace=True)

fig = px.sunburst(region,
                  path=["entidad", "municipio", "localidad"],
                  values='count',
                  title="PROPESCA regiones",
                  width=750, height=750)
fig.show()
url=py.iplot(fig, filename='PROPESCAregiones')

region=bienpesca.groupby(by=['Entidad']).count()[["Monto"]].rename(columns={"Monto":"count"})
print(region)
region.reset_index(inplace=True)

fig = px.sunburst(region,
                  path=["Entidad"],
                  values='count',
                  title="BIENPESCA regiones",
                  width=750, height=750)
fig.show()
url=py.iplot(fig, filename='BIENPESCAregiones')
 
#distribucion de sexo en pescadores unicos 
fig = px.sunburst(ben_unicos,
                  path=["sexo", "entidad"],
                  values='monto_conapesca',
                  title="PROPESCA distributcion genero",
                  width=750, height=750)
fig.show()
url=py.iplot(fig, filename='PROPESCAgenero')

fig = px.sunburst(bienpesca_nacional,
                  path=["Sexo"],
                  values='Monto',
                  title="BIENPESCA Nacional distributcion genero",
                  width=750, height=750)
fig.show()
url=py.iplot(fig, filename='BIENPESCAgeneronacional')



fig = px.sunburst(bienpesca,
                  path=["Sexo", 'Entidad'],
                  values='Monto',
                  title="BIENPESCA GDM distributcion genero",
                  width=750, height=750)
fig.show()
url=py.iplot(fig, filename='BIENPESCAgeneroGDM')

#como cruzar con numero de permisos en esos anios... nacional vs golfo de mexico , rnpa 


#enfocarse en la laguna de terminos.   checar numero de permisos vs bienpesca? sabancuy , isla aguada, cd del carmen 
Index(['año', 'folio', 'beneficiario', 'programa', 'componente', 'tipoapoyo',
       'concepto_apoyo', 'unidad_administrativa', 'cve_ent', 'nom_abr',
       'entidad', 'cve_mun', 'municipio', 'cve_loc', 'localidad', 'ambito',
       'lat_dec', 'lon_dec', 'fecha_ini', 'fecha_ter', 'sexo', 'pesqueria',
       'pesqueria_estandar', 'estatus', 'recursosolicitado', 'monto_conapesca',
       'monto_gob_edo', 'rnpa', 'rnpaemb', 'cve_presupuestal', 'cve_inegi',
       'unidadeconmica', 'tipopersonadelaorganizacion', 'tipo_ue',
       'tipopersona_ue', 'representantelegal_ue', 'tipoempresa_ue',
       'estado_ue', 'cve_ent_ue', 'municipio_ue', 'cve_mun_ue', 'localidad_ue',
       'cve_loc_ue', 'ambito_ue', 'lat_dec_ue', 'lon_dec_ue', 'iniciooper',
       'fechaderegistroactualizacion_ue', 'clasificacion_cn',
       'RNPA_disponible', 'tipo_cobertura', 'zona'],
      dtype='object')
(47217, 52)
                         beneficiario     localidad  count
0             AARON ALDAZABA MARTINEZ  LAS HIGUERAS      1
1        AARON ANDREY QUETZ RODRIGUEZ     CHAMPOTON      1
2       AARON ARTEMIO VALLADARES PECH      PROGRESO      1
3              AARON CASTILLO BONILLA   MATA DE UVA      2
4         AARON EBENESER MAAS SANCHEZ  VILLA MADERO      1
...                               ...           ...    ...
31844          ZURISADAY VERGARA SOSA     ARBOLILLO      1
31845     ZURISALAY DELGADO HERNANDEZ   TLACOTALPAN      1
31846     ZURY SAMANTHA GRANDA GARCIA      ALVARADO      1
31847      ZURY ZAMANTA GRANDA GARCIA      ALVARADO      1
31848  ZUYUKI GUADALUPE MARTINEZ RAZO      ALVARADO      1

[31849 rows x 3 columns]
Beneficiarios que recibieron beneficios por 2 años o mas
/Users/mmendoza/opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:18: SettingWithCopyWarning:


A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

/Users/mmendoza/opt/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:20: SettingWithCopyWarning:


A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

         año                     folio                        beneficiario  \
35295   2018  04-CC101-02022018-000340  JESUS MIGUEL ANGEL PEREZ MENDICUTI   
35296   2017  04-CC101-18042017-002326  JESUS MIGUEL ANGEL PEREZ MENDICUTI   
85810   2018  27-TC103-13042018-001413                  DAVID ARIAS CHAVEZ   
85820   2015  27-TC103-20022015-002117                  DAVID ARIAS CHAVEZ   
85821   2015  27-TC103-20022015-002124               JULIO BOLON HERNANDEZ   
...      ...                       ...                                 ...   
138278  2015  04-CC101-10032015-002136          REYNALDO HERNANDEZ MORALES   
138291  2017  04-CC101-18042017-002757     JUAN CARLOS GONZALES DE LA CRUZ   
138292  2017  04-CC101-18042017-002754          REYNALDO HERNANDEZ MORALES   
138293  2017  04-CC101-18042017-002755          FEDERICO HERNANDEZ MORALES   
138295  2016  04-CC101-29042016-000622     JUAN CARLOS GONZALES DE LA CRUZ   

                                              programa  \
35295   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
35296   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
85810   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
85820   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
85821   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
...                                                ...   
138278  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138291  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138292  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138293  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138295  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   

                                             componente tipoapoyo  \
35295   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
35296   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
85810   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
85820   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
85821   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
...                                                 ...       ...   
138278  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138291  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138292  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138293  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138295  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   

               concepto_apoyo                        unidad_administrativa  \
35295   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
35296   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
85810   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
85820   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
85821   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
...                       ...                                          ...   
138278  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138291  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138292  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138293  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138295  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   

        cve_ent nom_abr  ... lat_dec_ue  lon_dec_ue  iniciooper  \
35295         4    CAMP  ...  19.844814  -90.539649  13/05/1996   
35296         4    CAMP  ...  19.844814  -90.539649  13/05/1996   
85810        27     TAB  ...  18.546086  -92.640908  18/08/2011   
85820        27     TAB  ...  18.546086  -92.640908  18/08/2011   
85821        27     TAB  ...  18.546086  -92.640908  18/08/2011   
...         ...     ...  ...        ...         ...         ...   
138278        4    CAMP  ...        NaN         NaN         NaN   
138291        4    CAMP  ...        NaN         NaN         NaN   
138292        4    CAMP  ...        NaN         NaN         NaN   
138293        4    CAMP  ...        NaN         NaN         NaN   
138295        4    CAMP  ...        NaN         NaN         NaN   

        fechaderegistroactualizacion_ue clasificacion_cn   RNPA_disponible  \
35295                          05/07/16         PROPESCA        Disponible   
35296                          05/07/16         PROPESCA        Disponible   
85810                          11/04/17         PROPESCA        Disponible   
85820                          11/04/17         PROPESCA        Disponible   
85821                          11/04/17         PROPESCA        Disponible   
...                                 ...              ...               ...   
138278                              NaN         PROPESCA  Sin Coincidencia   
138291                              NaN         PROPESCA  Sin Coincidencia   
138292                              NaN         PROPESCA  Sin Coincidencia   
138293                              NaN         PROPESCA  Sin Coincidencia   
138295                              NaN         PROPESCA  Sin Coincidencia   

        tipo_cobertura             zona count comp_ids  
35295            LOCAL           CARIBE     2    14287  
35296            LOCAL           CARIBE     2    14287  
85810            LOCAL  GOLFO DE MEXICO     2     6190  
85820            LOCAL  GOLFO DE MEXICO     2     6190  
85821            LOCAL  GOLFO DE MEXICO     2    18969  
...                ...              ...   ...      ...  
138278           LOCAL           CARIBE     2    27336  
138291           LOCAL           CARIBE     2    17866  
138292           LOCAL           CARIBE     2    27336  
138293           LOCAL           CARIBE     2     8961  
138295           LOCAL           CARIBE     2    17866  

[26507 rows x 54 columns]
         año                     folio                     beneficiario  \
35270   2018  31-YN105-05042018-001889            DECIDERIO MARTIN POOL   
35271   2018  31-YN105-12032018-000706          RAUL GONZALO SOSA GOMEZ   
35272   2018  31-YN105-12032018-000707     JORGE CARLOS RODRIGUEZ GOMEZ   
35273   2018  31-YN105-05042018-001954      JENRRY MELCHOR RAMAYO PEREZ   
35274   2018  31-YN105-12032018-000711               RAUL MACIAS GARCIA   
...      ...                       ...                              ...   
138290  2018  04-CC101-13042018-003180        ORLANDO HERNANDEZ MORALES   
138292  2017  04-CC101-18042017-002754       REYNALDO HERNANDEZ MORALES   
138293  2017  04-CC101-18042017-002755       FEDERICO HERNANDEZ MORALES   
138294  2017  04-CC101-18042017-002760  VICTOR MANUEL HERNANDEZ MORALES   
138295  2016  04-CC101-29042016-000622  JUAN CARLOS GONZALES DE LA CRUZ   

                                              programa  \
35270   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
35271   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
35272   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
35273   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
35274   FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
...                                                ...   
138290  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138292  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138293  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138294  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
138295  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   

                                             componente tipoapoyo  \
35270   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
35271   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
35272   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
35273   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
35274   IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
...                                                 ...       ...   
138290  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138292  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138293  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138294  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   
138295  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  PROPESCA   

               concepto_apoyo                        unidad_administrativa  \
35270   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
35271   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
35272   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
35273   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
35274   CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
...                       ...                                          ...   
138290  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138292  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138293  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138294  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   
138295  CURSO DE CAPACITACION  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO   

        cve_ent nom_abr  ... lat_dec_ue  lon_dec_ue  iniciooper  \
35270        31     YUC  ...  21.282578  -89.663574  25/01/1991   
35271        31     YUC  ...  21.282578  -89.663574  25/01/1991   
35272        31     YUC  ...  21.282578  -89.663574  25/01/1991   
35273        31     YUC  ...  21.282578  -89.663574  25/01/1991   
35274        31     YUC  ...  21.282578  -89.663574  25/01/1991   
...         ...     ...  ...        ...         ...         ...   
138290        4    CAMP  ...        NaN         NaN         NaN   
138292        4    CAMP  ...        NaN         NaN         NaN   
138293        4    CAMP  ...        NaN         NaN         NaN   
138294        4    CAMP  ...        NaN         NaN         NaN   
138295        4    CAMP  ...        NaN         NaN         NaN   

        fechaderegistroactualizacion_ue clasificacion_cn   RNPA_disponible  \
35270                          24/08/16         PROPESCA        Disponible   
35271                          24/08/16         PROPESCA        Disponible   
35272                          24/08/16         PROPESCA        Disponible   
35273                          24/08/16         PROPESCA        Disponible   
35274                          24/08/16         PROPESCA        Disponible   
...                                 ...              ...               ...   
138290                              NaN         PROPESCA  Sin Coincidencia   
138292                              NaN         PROPESCA  Sin Coincidencia   
138293                              NaN         PROPESCA  Sin Coincidencia   
138294                              NaN         PROPESCA  Sin Coincidencia   
138295                              NaN         PROPESCA  Sin Coincidencia   

        tipo_cobertura    zona count comp_ids  
35270            LOCAL  CARIBE     1     6333  
35271            LOCAL  CARIBE     1    26925  
35272            LOCAL  CARIBE     1    14826  
35273            LOCAL  CARIBE     1    13907  
35274            LOCAL  CARIBE     1    26944  
...                ...     ...   ...      ...  
138290           LOCAL  CARIBE     1    25263  
138292           LOCAL  CARIBE     2    27336  
138293           LOCAL  CARIBE     2     8961  
138294           LOCAL  CARIBE     1    31028  
138295           LOCAL  CARIBE     2    17866  

[31849 rows x 54 columns]
(0, 10)
(47217, 54)
Merging dataframes
(47217, 54)
                                               count
entidad  municipio     localidad                    
CAMPECHE BENITO JUAREZ BENITO JUAREZ               1
         CALKINI       CALKINI                     4
                       ISLA ARENA                442
                       SAN NICOLAS                 2
                       SANTA CRUZ EX-HACIENDA      3
...                                              ...
YUCATAN  TIZIMIN       TIZIMIN                     9
                       YOHACTUN DE HIDALGO         1
         UCU           UCU                         1
         YOBAIN        CHABIHAU                   62
                       YOBAIN                     39

[1341 rows x 1 columns]
Empty DataFrame
Columns: [count]
Index: []

Informacion de genero nacional , numero total

In [13]:
import plotly.figure_factory as ff

print(ben_unicos['sexo'].value_counts())
print(propesca_nacional['sexo'].value_counts())
print(bienpesca['Sexo'].value_counts())
print(bienpesca_nacional['Sexo'].value_counts())

print(bienpesca_nacional['Monto'].value_counts())
M    31849
Name: sexo, dtype: int64
M    146824
Name: sexo, dtype: int64
Series([], Name: Sexo, dtype: int64)
Masculino    151822
Femenino      40037
Name: Sexo, dtype: int64
7200    191859
Name: Monto, dtype: int64

Nuevos Datos oficiales BIENPESCA PROPESCA 2014- 2019

In [14]:
aprobados= propesca_update[propesca_update['Estatus']=='APROBADO']
aprobados.head()

print(aprobados.columns)

print(aprobados['Fecha de Inicio'])
print(aprobados['Fecha Termino'])

# make anio column with the proper scheme ....  ask this to Sara 

# convert to datetime and make another column corresponding to the year 
aprobados['Fecha de Inicio']=pd.to_datetime(aprobados['Fecha de Inicio'])
#print(propesca_update['Fecha de Inicio'])
aprobados['año']= pd.DatetimeIndex(aprobados['Fecha de Inicio']).year # retrieve just the year 
bienpesca_nacional['año']=2020
print(aprobados['año'])

#restringir al GDM 
# GM_estados=['TAMAULIPAS','TABASCO','VERACRUZ', 'CAMPECHE', 'YUCATAN'] 
# propesca_2=propesca_update[propesca_update['Nombre Estado'].isin(GM_estados)]
# print(propesca_2.shape)

#numero de beneficiarios unicos y distribucion de num de anios que han recibido propesca 
ben_unicos_count2= aprobados.groupby(by=['Nombre del Beneficiario o Razon Social', 'Nombre Localidad']).size().reset_index().rename(columns={0:'count'})
#drop the ones where count >5 
ben_unicos_count2=ben_unicos_count2[ben_unicos_count2['count']<=5]
print(ben_unicos_count2.shape)
print(ben_unicos_count.shape)

ben_unicos2=aprobados.drop_duplicates(subset=['Nombre del Beneficiario o Razon Social', 'Nombre Localidad'], keep='last')
print(ben_unicos2)

fig = px.histogram(ben_unicos_count2, x="count", title='Distribucion de numero de años de subsidio por beneficiario')
fig.show()
url=py.iplot(fig, filename='PROPESCA2nacionalanios')

#distribucion de beneficios por año y por entidad
fig=px.histogram(aprobados, x='año', color='Nombre Estado', title='Numero de Beneficios por año')
fig.show()


#BIENPESCA UNION
# todo propesca_2. # change column name Nombre Estado to entidad 
aprobados_copy=aprobados.rename(columns={'Nombre Estado':'Entidad'}, inplace=False)
bienpesca_nacional.replace({'Entidad' : entidades_mapa}, inplace=True )  # not needed here, but ran up top 
print(bienpesca_nacional['Entidad'])
union_propesca_bienpesca2=aprobados_copy.merge(bienpesca_nacional[['Entidad','año']], on=['año','Entidad'], how='outer') # need entidad and anio and merge them
#clean NaN values 
union_propesca_bienpesca2.dropna(subset=['Entidad'], inplace=True)
print(union_propesca_bienpesca2.shape)

fig=px.histogram(union_propesca_bienpesca2, x='año', color='Entidad', title='Numero de Beneficios por año')
fig.show()

#ahora por regiones 

for region, est_values in regiones_dic.items():  #No incluira los estados restantes de BIENPESCA.... 
    #filter for region 
    datos_region= union_propesca_bienpesca2[union_propesca_bienpesca2['Entidad'].isin(est_values)]
    fig=px.histogram(datos_region, x='año', color='Entidad', title='Numero de Beneficios por año')
    fig.show()
Index(['Ejercicio', 'Programa', 'Componente', 'Incentivo',
       'Unidad Administrativa', 'Clave Presupuestaria', 'Clave Estado',
       'Nombre Estado', 'Clave Municipio', 'Nombre Municipio',
       'Clave Localidad', 'Nombre Localidad', 'Fecha de Inicio',
       'Fecha Termino', 'Modalidad o concepto de apoyo', 'Folio',
       'Nombre del Beneficiario o Razon Social', 'Genero', 'Pesqueria',
       'Estatus', 'Recurso Solicitado', 'Recurso Federal Aportado',
       'Recurso Estatal Aportado', 'RNPUE', 'RNP EMBARCACION',
       'Nombre de la Organización a la que Pertenecen las Solicitudes de Apoyo',
       'Tipo Persona de la Organizacion'],
      dtype='object')
13        18/06/2014
14        18/06/2014
15        18/06/2014
16        18/06/2014
17        18/06/2014
             ...    
402473    06/05/2019
402474    06/05/2019
402476    06/05/2019
402480    06/05/2019
402481    30/04/2019
Name: Fecha de Inicio, Length: 196918, dtype: object
13        30/06/2014
14        30/06/2014
15        30/06/2014
16        30/06/2014
17        30/06/2014
             ...    
402473    08/01/2020
402474    26/08/2019
402476    06/12/2019
402480    27/08/2019
402481    06/12/2019
Name: Fecha Termino, Length: 196918, dtype: object
13        2014
14        2014
15        2014
16        2014
17        2014
          ... 
402473    2019
402474    2019
402476    2019
402480    2019
402481    2019
Name: año, Length: 196918, dtype: int64
(113532, 3)
(31849, 3)
        Ejercicio                                        Programa  \
14           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
19           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
20           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
21           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
23           2014  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
...           ...                                             ...   
402473       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402474       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402476       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402480       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   
402481       2019  FOMENTO A LA PRODUCTIVIDAD PESQUERA Y ACUICOLA   

                                             Componente  Incentivo  \
14      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
19      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
20      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
21      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
23      IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA   PROPESCA   
...                                                 ...        ...   
402473  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402474  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402476  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402480  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   
402481  IMPULSO A LA CAPITALIZACION PESQUERA Y ACUICOLA  BIENPESCA   

                              Unidad Administrativa Clave Presupuestaria  \
14      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
19      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
20      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
21      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
23      DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DA   
...                                             ...                  ...   
402473  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402474  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402476  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402480  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   
402481  DIRECCION GENERAL DE ORGANIZACION Y FOMENTO             S261-4DB   

        Clave Estado    Nombre Estado  Clave Municipio Nombre Municipio  ...  \
14                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
19                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
20                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
21                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
23                 2  BAJA CALIFORNIA             2002         MEXICALI  ...   
...              ...              ...              ...              ...  ...   
402473            32        ZACATECAS            32045      TEPECHITLAN  ...   
402474            32        ZACATECAS            32045      TEPECHITLAN  ...   
402476            32        ZACATECAS            32045      TEPECHITLAN  ...   
402480            32        ZACATECAS            32049       VALPARAISO  ...   
402481            32        ZACATECAS            32043       SUSTICACAN  ...   

            Pesqueria   Estatus Recurso Solicitado Recurso Federal Aportado  \
14      ESCAMA MARINA  APROBADO               7000                     8000   
19      ESCAMA MARINA  APROBADO               7000                     8000   
20      ESCAMA MARINA  APROBADO               7000                     8000   
21      ESCAMA MARINA  APROBADO               7000                     8000   
23      ESCAMA MARINA  APROBADO               7000                     8000   
...               ...       ...                ...                      ...   
402473        TILAPIA  APROBADO               7200                     7200   
402474        TILAPIA  APROBADO               7200                     7200   
402476        TILAPIA  APROBADO               7200                     7200   
402480          CARPA  APROBADO               7200                     7200   
402481        TILAPIA  APROBADO               7200                     7200   

       Recurso Estatal Aportado       RNPUE RNP EMBARCACION  \
14                            0   203010103         2015774   
19                            0   203010103         2015725   
20                            0   203010103         2015766   
21                            0   203010103         2015782   
23                            0   203010103         2004455   
...                         ...         ...             ...   
402473                        0  3201000696        32010696   
402474                        0  3201000696        32010696   
402476                        0  3201000696        32010696   
402480                        0  3201000373        32010373   
402481                        0  3201000472        32010472   

       Nombre de la Organización a la que Pertenecen las Solicitudes de Apoyo  \
14                                       EL MAYOR CUCAPAH                       
19                                       EL MAYOR CUCAPAH                       
20                                       EL MAYOR CUCAPAH                       
21                                       EL MAYOR CUCAPAH                       
23                                       EL MAYOR CUCAPAH                       
...                                                   ...                       
402473  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402474  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402476  SOCIEDAD COOPERATIVA DE PRODUCCION PESQUERA TE...                       
402480                             PRESA MANUEL FELGUEREZ                       
402481  PESCADORES DE TLALTICUALOYA SUSTICACAN ZACATEC...                       

       Tipo Persona de la Organizacion   año  
14                               MORAL  2014  
19                               MORAL  2014  
20                               MORAL  2014  
21                               MORAL  2014  
23                               MORAL  2014  
...                                ...   ...  
402473                           MORAL  2019  
402474                           MORAL  2019  
402476                           MORAL  2019  
402480                           MORAL  2019  
402481                           MORAL  2019  

[113603 rows x 28 columns]
/Users/mmendoza/opt/anaconda3/lib/python3.7/site-packages/chart_studio/plotly/plotly.py:222: UserWarning:

Woah there! Look at all those points! Due to browser limitations, the Plotly SVG drawing functions have a hard time graphing more than 500k data points for line charts, or 40k points for other types of charts. Here are some suggestions:
(1) Use the `plotly.graph_objs.Scattergl` trace object to generate a WebGl graph.
(2) Trying using the image API to return an image instead of a graph URL
(3) Use matplotlib
(4) See if you can create your visualization with fewer data points

If the visualization you're using aggregates points (e.g., box plot, histogram, etc.) you can disregard this warning.

0                      SONORA
1                     CHIAPAS
2         BAJA CALIFORNIA SUR
3         BAJA CALIFORNIA SUR
4                      COLIMA
                 ...         
191854    BAJA CALIFORNIA SUR
191855                NAYARIT
191856                SINALOA
191857    BAJA CALIFORNIA SUR
191858               GUERRERO
Name: Entidad, Length: 191859, dtype: object
(388769, 28)

Permisos en series de tiempo

In [15]:
def interval_overlaps(a_pair, b_start, b_end ): #checks for a time overlap 
    return min(a_pair[1], b_end) - max(a_pair[0], b_start) > np.timedelta64(-1)

permisos_nacional=pd.read_csv('subsidios_permisos/Permisos_base_completa.csv')

print(bienpesca_nacional['Entidad'].value_counts())
#print(permisos_nacional)

anios=pd.date_range(start=pd.datetime(2013,1,1), end=pd.datetime(2020,1,1), freq='Y')  #pairs to compare start an end dates 
print(anios)
shift=pd.to_timedelta([1,1, 1, 1, 1,1,1], unit='Y')
anios_end=anios+shift
anios_pair=list(zip(anios, anios_end))
print(anios_pair)

# how to construct a time series of permisos 

# deal with date, standardize, index 26175 is where it starts being different, change latter dates to former dates 
print(permisos_nacional.iloc[26172]) # last one t
print(permisos_nacional.iloc[26173]) # clean for this on 


new_dates1=pd.to_datetime(permisos_nacional['fecha_inicio'][0:26173],format='%Y-%m-%d', errors='coerce')
new_dates2=pd.to_datetime(permisos_nacional['fecha_inicio'][26173:],format='%d/%m/%y', errors='coerce')
#concatenate dates 
new_dates=pd.concat([new_dates1, new_dates2])
permisos_nacional['fecha_inicio']= new_dates
print(permisos_nacional['fecha_inicio']) # problem is that the column is not read as datetime yet 

new_dates1= pd.to_datetime(permisos_nacional['fecha_final'][0:26173],format='%Y-%m-%d', errors='coerce')
new_dates2=pd.to_datetime(permisos_nacional['fecha_final'][26173:],format='%d/%m/%y', errors='coerce')
new_dates=pd.concat([new_dates1, new_dates2])
permisos_nacional['fecha_final']=new_dates
#'fecha_inicio', 'fecha_final'
print(permisos_nacional['fecha_final'])

#find which years from 2014 to 2020 overlap with each permit and make columns for years 
for i,anio in enumerate(anios_pair): 
    print(anio[0])
    print(anio[1])
    #check if this year overlaps with fecha inicio and fecha final 
    year= str(2014+i)
    #save result in another column named as the year 
    permisos_nacional[year]=permisos_nacional.apply(lambda x: interval_overlaps(anio, x['fecha_inicio'], x['fecha_final']), axis=1)
    
SINALOA                34867
VERACRUZ               24775
TAMAULIPAS             15006
GUERRERO               13799
YUCATAN                13476
CHIAPAS                13082
TABASCO                12890
SONORA                 12406
CAMPECHE                9088
NAYARIT                 8021
OAXACA                  6517
BAJA CALIFORNIA SUR     6004
BAJA CALIFORNIA         5243
JALISCO                 4702
MICHOACAN               4642
GUANAJUATO              1430
QUINTANA ROO            1203
COLIMA                  1047
HIDALGO                  824
MORELOS                  544
QUERETARO                411
CHIHUAHUA                400
ZACATECAS                397
México                   249
DURANGO                  232
SAN LUIS POTOSI          204
PUEBLA                   100
COAHUILA                  98
TLAXCALA                  83
Aguascalientes            70
Nuevo León                31
Ciudad de México          10
Name: Entidad, dtype: int64
DatetimeIndex(['2013-12-31', '2014-12-31', '2015-12-31', '2016-12-31',
               '2017-12-31', '2018-12-31', '2019-12-31'],
              dtype='datetime64[ns]', freq='A-DEC')
[(Timestamp('2013-12-31 00:00:00', freq='A-DEC'), Timestamp('2014-12-31 05:49:12')), (Timestamp('2014-12-31 00:00:00', freq='A-DEC'), Timestamp('2015-12-31 05:49:12')), (Timestamp('2015-12-31 00:00:00', freq='A-DEC'), Timestamp('2016-12-30 05:49:12')), (Timestamp('2016-12-31 00:00:00', freq='A-DEC'), Timestamp('2017-12-31 05:49:12')), (Timestamp('2017-12-31 00:00:00', freq='A-DEC'), Timestamp('2018-12-31 05:49:12')), (Timestamp('2018-12-31 00:00:00', freq='A-DEC'), Timestamp('2019-12-31 05:49:12')), (Timestamp('2019-12-31 00:00:00', freq='A-DEC'), Timestamp('2020-12-30 05:49:12'))]
id_permiso                                                   10007221
Permisionario       SCPP DE ALTAMAR FUERTE SAN BASILIO DE SAN BLAS...
permiso                                                  118028993353
rnpa                                                       1802001790
localidad                                                    SAN BLAS
municipio                                                    SAN BLAS
cve_municipio                                                   18012
entidad                                                       NAYARIT
cve_localidad                                              1.8012e+08
lat_decimal                                               21.54173800
lon_decimal                                             -105.28604600
pesqueria                                               ESCAMA MARINA
fecha_inicio                                               2018-01-12
fecha_final                                                2023-01-12
zona_opecacion      AGUAS DE JURISDICCIN FEDERAL DEL LITORAL DEL O...
sitio_arribo                      MARGEN IZQUIERDA DEL ESTERO EL POZO
artes               16 LINEAS DE MANO - 1 RED AGALLERA - 3 RED AGA...
no_embarcaciones                                                    4
tipo_embarcacion                                                Menor
nom_abr                                                          Nay.
estatus1                                        Permiso sin problemas
estatus2                                                          NaN
Name: 26172, dtype: object
id_permiso                                                    3000150
Permisionario                            GILBERTO ARTURO CHAVEZ LOPEZ
permiso                                                   12604011082
rnpa                                                       2604612081
localidad                                             HEROICA GUAYMAS
municipio                                                     GUAYMAS
cve_municipio                                                   26029
entidad                                                        SONORA
cve_localidad                                              2.6029e+08
lat_decimal                                                  27.92332
lon_decimal                                               -110.889217
pesqueria                                          CAMARON DE ALTAMAR
fecha_inicio                                                 15/07/19
fecha_final                                                  15/04/23
zona_opecacion      AGUAS DE JURISDICCIÓN FEDERAL DEL LITORAL DEL ...
sitio_arribo                                          GUAYMAS, SONORA
artes                                               2 RED DE ARRASTRE
no_embarcaciones                                                    1
tipo_embarcacion                                                Mayor
nom_abr                                                           SON
estatus1                                                 Sin problema
estatus2                                                          NaN
Name: 26173, dtype: object
0       2015-09-30
1       2009-03-13
2       2015-06-27
3       2016-05-31
4       2016-11-11
           ...    
27472   2019-07-10
27473   2019-07-24
27474   2018-11-23
27475   2019-08-30
27476   2019-02-08
Name: fecha_inicio, Length: 27477, dtype: datetime64[ns]
0       2035-09-30
1       2013-03-11
2       2017-06-26
3       2018-05-31
4       2018-11-11
           ...    
27472   2023-07-10
27473   2021-07-24
27474   2020-11-23
27475   2023-08-30
27476   2021-02-08
Name: fecha_final, Length: 27477, dtype: datetime64[ns]
2013-12-31 00:00:00
2014-12-31 05:49:12
/Users/mmendoza/opt/anaconda3/lib/python3.7/site-packages/pandas/util/_decorators.py:208: FutureWarning:

M and Y units are deprecated and will be removed in a future version.

2014-12-31 00:00:00
2015-12-31 05:49:12
2015-12-31 00:00:00
2016-12-30 05:49:12
2016-12-31 00:00:00
2017-12-31 05:49:12
2017-12-31 00:00:00
2018-12-31 05:49:12
2018-12-31 00:00:00
2019-12-31 05:49:12
2019-12-31 00:00:00
2020-12-30 05:49:12
In [16]:
cols_to_print=['fecha_inicio', 'fecha_final', '2014', '2015', '2016', '2017' , '2018', '2019', '2020']
print(permisos_nacional[cols_to_print])


cols_to_keep= ['2014', '2015', '2016', '2017' , '2018', '2019', '2020', 'entidad', 'no_embarcaciones']

# make another dataframe with year and number of permits and state 
# you can group by entidad and count number of years? 

permisos_tiempo=permisos_nacional[cols_to_keep]


# brute force way to do this, probably a better way with groupby,

permisos_tiempo_vec=[ ]
for year in range(2014,2021): 
    #filter for True 
    print(year)
    new_df= permisos_tiempo[permisos_tiempo[str(year)]==True]
    new_df[str(year)]=year # switch all to that year 
    cols_to_keep=[str(year), 'entidad', 'no_embarcaciones']
    new_df=new_df[cols_to_keep] 
    #rename col 
    #print(new_df)
    new_df.rename(columns={str(year):'Year'}, inplace=True) 
    permisos_tiempo_vec.append(new_df)

    
permisos_final=pd.concat(permisos_tiempo_vec)

# barplot w x=year 
print(permisos_final)

permisos_grp=permisos_final.groupby(['Year','entidad']).size().reset_index().rename(columns={0:'count'})
no_embarcaciones= permisos_final.groupby(['Year','entidad']).agg({'no_embarcaciones': ['count', 'sum']}).reset_index()
no_embarcaciones.columns = ['Year','entidad', 'count', 'sum']


print('permisos grouped by year and entidad')
print(permisos_grp)
print('permisos grouped by year and entidad, numero de embarcaciones')
print(no_embarcaciones)


#make different columns 2014 a 2020 and see number of active permits per entidad , plot bar charts about this x= year 
fig = px.bar(permisos_grp, x='Year', y='count', color='entidad', title='Numero de permisos activos en el país por año')
fig.show()
url=py.iplot(fig, filename='Permisostimeseries')

#ahora mostrarr el numero de embarcaciones por estado
fig = px.bar(no_embarcaciones, x='Year', y='sum', color='entidad', title='Numero de embarcaciones en permisos activos en el país por año')
fig.show()
url=py.iplot(fig, filename='noembarcacionestimeseries')



#restringir al Golfo de Mexico 
permisos_golfo=permisos_grp[permisos_grp['entidad'].isin(GM_estados)]
embarcaciones_golfo=no_embarcaciones[no_embarcaciones['entidad'].isin(GM_estados)]

fig = px.bar(permisos_golfo, x='Year', y='count', color='entidad', title='Numero de permisos activos en el Golfo de Mexico por año')
fig.show()
url=py.iplot(fig, filename='PermisostimeseriesGoM')


fig = px.bar(embarcaciones_golfo, x='Year', y='sum', color='entidad', title='Numero de embarcaciones en el Golfo de Mexico por año')
fig.show()
url=py.iplot(fig, filename='embarcacionesGoM')
      fecha_inicio fecha_final   2014   2015   2016   2017   2018   2019  \
0       2015-09-30  2035-09-30  False   True   True   True   True   True   
1       2009-03-13  2013-03-11  False  False  False  False  False  False   
2       2015-06-27  2017-06-26  False   True   True   True  False  False   
3       2016-05-31  2018-05-31  False  False   True   True   True  False   
4       2016-11-11  2018-11-11  False  False   True   True   True  False   
...            ...         ...    ...    ...    ...    ...    ...    ...   
27472   2019-07-10  2023-07-10  False  False  False  False  False   True   
27473   2019-07-24  2021-07-24  False  False  False  False  False   True   
27474   2018-11-23  2020-11-23  False  False  False  False   True   True   
27475   2019-08-30  2023-08-30  False  False  False  False  False   True   
27476   2019-02-08  2021-02-08  False  False  False  False  False   True   

        2020  
0       True  
1      False  
2      False  
3      False  
4      False  
...      ...  
27472   True  
27473   True  
27474   True  
27475   True  
27476   True  

[27477 rows x 9 columns]
2014
2015
2016
2017
2018
2019
2020
       Year              entidad  no_embarcaciones
7      2014              CHIAPAS                29
11     2014              CHIAPAS                 7
45     2014               COLIMA                 1
46     2014  BAJA CALIFORNIA SUR                 4
55     2014      BAJA CALIFORNIA                 3
...     ...                  ...               ...
27472  2020  BAJA CALIFORNIA SUR                 2
27473  2020               SONORA                 1
27474  2020             VERACRUZ                 3
27475  2020             CAMPECHE                 1
27476  2020               SONORA                 1

[96702 rows x 3 columns]
permisos grouped by year and entidad
     Year              entidad  count
0    2014      BAJA CALIFORNIA   1119
1    2014  BAJA CALIFORNIA SUR   1227
2    2014             CAMPECHE    157
3    2014              CHIAPAS     29
4    2014     CIUDAD DE MEXICO     16
..    ...                  ...    ...
189  2020              TABASCO     80
190  2020           TAMAULIPAS    695
191  2020             TLAXCALA      5
192  2020             VERACRUZ    537
193  2020              YUCATAN   2024

[194 rows x 3 columns]
permisos grouped by year and entidad, numero de embarcaciones
     Year              entidad  count   sum
0    2014      BAJA CALIFORNIA   1119  3052
1    2014  BAJA CALIFORNIA SUR   1227  4275
2    2014             CAMPECHE    157   199
3    2014              CHIAPAS     29   206
4    2014     CIUDAD DE MEXICO     16    16
..    ...                  ...    ...   ...
189  2020              TABASCO     80   520
190  2020           TAMAULIPAS    695  4436
191  2020             TLAXCALA      5    36
192  2020             VERACRUZ    537  6754
193  2020              YUCATAN   2024  5311

[194 rows x 4 columns]

Correlacion entre permisos / embarcaciones y beneficiarios/ monto total

In [17]:
# dividir monto y numero de beneficiarios por numero de embarcaciones 

#merge dataframes / per year 
print(embarcaciones_golfo)
print(union_propesca_bienpesca.columns) 
#union propesca contains both number of beneficieries from propesca + bienpesca ,

#union propesca, group by entidad and use count , #rename columns to count 
#print(union_propesca_bienpesca.groupby(['año','entidad']).count().reset_index().rename(columns={0:'count_benef'}, inplace=True))
count_propesca=union_propesca_bienpesca.groupby(['año','entidad']).size().reset_index().rename(columns={0:'count_benef'})
count_propesca2=union_propesca_bienpesca2.groupby(['año','entidad']).size().reset_index().rename(columns={0:'count_benef'})
#change column name 
#print(count_propesca)
print(count_propesca2)
embarcaciones_golfo.rename(columns = {'Year': 'año'}, inplace=True)

print(embarcaciones_golfo)
# merge by anio and entidad 
permisos_benef=embarcaciones_golfo.merge(count_propesca[['entidad','año', 'count_benef']], on=['año','entidad'], how='outer') 
permisos_benef2=embarcaciones_golfo.merge(count_propesca2[['entidad','año', 'count_benef']], on=['año','entidad'], how='outer') 
## Plot scatterplot of both x/y per year 

permisos_benef['embarcaciones_div_benef']=permisos_benef['sum']/permisos_benef['count_benef']
permisos_benef['permisos_div_benef']= permisos_benef['count']/permisos_benef['count_benef']

permisos_benef['benef_div_embarcaciones']=permisos_benef['count_benef']/permisos_benef['sum']
permisos_benef['benef_div_permisos']= permisos_benef['count_benef']/permisos_benef['count']


permisos_benef2['embarcaciones_div_benef']=permisos_benef2['sum']/permisos_benef2['count_benef']
permisos_benef2['permisos_div_benef']= permisos_benef2['count']/permisos_benef2['count_benef']

permisos_benef2['benef_div_embarcaciones']=permisos_benef2['count_benef']/permisos_benef2['sum']
permisos_benef2['benef_div_permisos']= permisos_benef2['count_benef']/permisos_benef2['count']

print(permisos_benef2)

## Al reves 
fig = px.bar(permisos_benef, x='año', y='benef_div_embarcaciones', color='entidad', barmode='group',title='Numero de beneficiarios por embarcaciones en el Golfo de Mexico por año')
fig.show()
url=py.iplot(fig, filename='benef_div_embarcaciones')

# correlacion, etc.   
fig = px.bar(permisos_benef, x='año', y='benef_div_permisos', color='entidad',barmode='group',  title='Numero de beneficiarios por permiso en el Golfo de Mexico por año')
fig.show()
url=py.iplot(fig, filename='benef_div_permisos')

# segunda parte 
fig = px.bar(permisos_benef2, x='año', y='benef_div_embarcaciones', color='entidad', barmode='group',title='Numero de beneficiarios por embarcaciones en el Golfo de Mexico por año')
fig.show()
url=py.iplot(fig, filename='benef_div_embarcaciones2')

# correlacion, etc.   
fig = px.bar(permisos_benef2, x='año', y='benef_div_permisos', color='entidad',barmode='group',  title='Numero de beneficiarios por permiso en el Golfo de Mexico por año')
fig.show()
url=py.iplot(fig, filename='benef_div_permisos2')
     Year     entidad  count    sum
2    2014    CAMPECHE    157    199
21   2014     TABASCO     33    140
22   2014  TAMAULIPAS    380    996
23   2014    VERACRUZ    844   3059
24   2014     YUCATAN     32    291
27   2015    CAMPECHE    197    254
47   2015     TABASCO     38    148
48   2015  TAMAULIPAS    578   2811
50   2015    VERACRUZ   1251   5838
51   2015     YUCATAN   1108   2901
54   2016    CAMPECHE    166    203
74   2016     TABASCO     30    109
75   2016  TAMAULIPAS    779   5493
77   2016    VERACRUZ   1348   9228
78   2016     YUCATAN   2751   7302
81   2017    CAMPECHE    174    211
101  2017     TABASCO     30     95
102  2017  TAMAULIPAS    919   6379
104  2017    VERACRUZ   1338  10572
105  2017     YUCATAN   3537   9107
108  2018    CAMPECHE    159    206
130  2018     TABASCO     74    401
131  2018  TAMAULIPAS    995   6633
133  2018    VERACRUZ   1075  11427
134  2018     YUCATAN   3168   7961
137  2019    CAMPECHE    283    485
160  2019     TABASCO     94    556
161  2019  TAMAULIPAS    859   5780
163  2019    VERACRUZ    775   8371
164  2019     YUCATAN   3076   7682
167  2020    CAMPECHE    237    420
189  2020     TABASCO     80    520
190  2020  TAMAULIPAS    695   4436
192  2020    VERACRUZ    537   6754
193  2020     YUCATAN   2024   5311
Index(['año', 'folio', 'beneficiario', 'programa', 'componente', 'tipoapoyo',
       'concepto_apoyo', 'unidad_administrativa', 'cve_ent', 'nom_abr',
       'entidad', 'cve_mun', 'municipio', 'cve_loc', 'localidad', 'ambito',
       'lat_dec', 'lon_dec', 'fecha_ini', 'fecha_ter', 'sexo', 'pesqueria',
       'pesqueria_estandar', 'estatus', 'recursosolicitado', 'monto_conapesca',
       'monto_gob_edo', 'rnpa', 'rnpaemb', 'cve_presupuestal', 'cve_inegi',
       'unidadeconmica', 'tipopersonadelaorganizacion', 'tipo_ue',
       'tipopersona_ue', 'representantelegal_ue', 'tipoempresa_ue',
       'estado_ue', 'cve_ent_ue', 'municipio_ue', 'cve_mun_ue', 'localidad_ue',
       'cve_loc_ue', 'ambito_ue', 'lat_dec_ue', 'lon_dec_ue', 'iniciooper',
       'fechaderegistroactualizacion_ue', 'clasificacion_cn',
       'RNPA_disponible', 'tipo_cobertura', 'zona', 'count', 'comp_ids'],
      dtype='object')
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-17-c6ff63e4c5e4> in <module>
      9 #print(union_propesca_bienpesca.groupby(['año','entidad']).count().reset_index().rename(columns={0:'count_benef'}, inplace=True))
     10 count_propesca=union_propesca_bienpesca.groupby(['año','entidad']).size().reset_index().rename(columns={0:'count_benef'})
---> 11 count_propesca2=union_propesca_bienpesca2.groupby(['año','entidad']).size().reset_index().rename(columns={0:'count_benef'})
     12 #change column name
     13 #print(count_propesca)

~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in groupby(self, by, axis, level, as_index, sort, group_keys, squeeze, observed, **kwargs)
   7892             squeeze=squeeze,
   7893             observed=observed,
-> 7894             **kwargs
   7895         )
   7896 

~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/groupby.py in groupby(obj, by, **kwds)
   2520         raise TypeError("invalid type: {}".format(obj))
   2521 
-> 2522     return klass(obj, by, **kwds)

~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/groupby.py in __init__(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, squeeze, observed, **kwargs)
    389                 sort=sort,
    390                 observed=observed,
--> 391                 mutated=self.mutated,
    392             )
    393 

~/opt/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/grouper.py in _get_grouper(obj, key, axis, level, sort, observed, mutated, validate)
    619                 in_axis, name, level, gpr = False, None, gpr, None
    620             else:
--> 621                 raise KeyError(gpr)
    622         elif isinstance(gpr, Grouper) and gpr.key is not None:
    623             # Add key to exclusions

KeyError: 'entidad'

Correlacion entre permisos / embarcaciones , nacional por regiones

In [43]:
no_embarcaciones.rename(columns = {'Year': 'año'}, inplace=True) #embarcaciones nacionales 


incremento_nacional=pd.DataFrame(columns=['entidad','incremento_bde','incremento_bdp', 'incremento_raw'] )

for region, est_values in regiones_dic.items():  #No incluira los estados restantes de BIENPESCA.... 
    #filter for region 
    benef_region= union_propesca_bienpesca2[union_propesca_bienpesca2['Entidad'].isin(est_values)]
    count_propesca2=benef_region.groupby(['año','Entidad']).size().reset_index().rename(columns={0:'count_benef'})
    embarcaciones_region= no_embarcaciones[no_embarcaciones['entidad'].isin(est_values)]
    # change entidad name
    embarcaciones_region.rename(columns = {'entidad': 'Entidad'}, inplace=True)
    # merge data
    permisos_benef_region=embarcaciones_region.merge(count_propesca2[['Entidad','año', 'count_benef']], on=['año','Entidad'], how='outer') 
    # calculate ratios 
    permisos_benef_region['benef_div_embarcaciones']=permisos_benef_region['count_benef']/permisos_benef_region['sum']
    permisos_benef_region['benef_div_permisos']= permisos_benef_region['count_benef']/permisos_benef_region['count']
    
    #
    if(region=='Aguas_Continentales'):
        print('Skipping Aguas Continentales')
    else: 
        count_2019= permisos_benef_region[permisos_benef_region['año']==2019].reset_index()
        count_2020= permisos_benef_region[permisos_benef_region['año']==2020].reset_index()

        print(count_2019)
        print(count_2020)

        incremento=pd.DataFrame()
        incremento['entidad']= count_2020['Entidad'] # estado 
        incremento['incremento_bde']=count_2020['benef_div_embarcaciones']/count_2019['benef_div_embarcaciones']
        incremento['incremento_bdp']=count_2020['benef_div_permisos']/count_2019['benef_div_permisos']
        incremento['incremento_raw']=count_2020['count_benef']/count_2019['count_benef']
        incremento['incremento_cambiorel']=(count_2020['count_benef']- count_2019['count_benef'])/ count_2019['count_benef']
        incremento['incremento_difrel']=(count_2020['count_benef']- count_2019['count_benef'])/ ((count_2019['count_benef'] + count_2020['count_benef'])/2)
        
        #merge 
        incremento_nacional= incremento_nacional.append(incremento, ignore_index=True)
        
    
    
     #plot  
    fig = px.bar(permisos_benef_region, x='año', y='benef_div_embarcaciones', color='Entidad', barmode='group',title='Numero de beneficiarios por embarcaciones por año')
    fig.show()

    # correlacion, etc.   
    fig = px.bar(permisos_benef_region, x='año', y='benef_div_permisos', color='Entidad',barmode='group',  title='Numero de beneficiarios por permiso por año')
    fig.show()
    
    
### incremento del 2019 al 2020 
    
print(incremento_nacional)
    
#boxplot 
    
fig = px.box(incremento_nacional, y="incremento_bde", points="all", hover_data= ['entidad'])
fig.show()
    
fig = px.box(incremento_nacional, y="incremento_bdp", points="all", hover_data= ['entidad'])
fig.show()
    
fig = px.box(incremento_nacional, y="incremento_raw", points="all", hover_data= ['entidad'])
fig.show()

fig = px.box(incremento_nacional, y="incremento_cambiorel", points="all", hover_data= ['entidad'])
fig.show()

fig = px.box(incremento_nacional, y="incremento_difrel", points="all", hover_data= ['entidad'])
fig.show()
   index   año              Entidad  count   sum  count_benef  \
0     25  2019      BAJA CALIFORNIA   1280  4216          358   
1     26  2019  BAJA CALIFORNIA SUR   1942  6979          896   
2     27  2019              NAYARIT    360  2559         2139   
3     28  2019              SINALOA   2012  8739        10427   
4     29  2019               SONORA   2127  5623         3100   

   benef_div_embarcaciones  benef_div_permisos  
0                 0.084915            0.279687  
1                 0.128385            0.461380  
2                 0.835873            5.941667  
3                 1.193157            5.182406  
4                 0.551307            1.457452  
   index   año              Entidad  count   sum  count_benef  \
0     30  2020      BAJA CALIFORNIA    912  3006         5243   
1     31  2020  BAJA CALIFORNIA SUR   1404  4647         6004   
2     32  2020              NAYARIT    281  1790         8021   
3     33  2020              SINALOA   1606  7620        34867   
4     34  2020               SONORA    910  2537        12406   

   benef_div_embarcaciones  benef_div_permisos  
0                 1.744178            5.748904  
1                 1.292016            4.276353  
2                 4.481006           28.544484  
3                 4.575722           21.710461  
4                 4.890028           13.632967  
   index   año    Entidad  count   sum  count_benef  benef_div_embarcaciones  \
0     30  2019    CHIAPAS    124  2629         4162                 1.583111   
1     31  2019     COLIMA    167   400          291                 0.727500   
2     32  2019   GUERRERO    465  2323         3836                 1.651313   
3     33  2019    JALISCO    306  5955         1123                 0.188581   
4     34  2019  MICHOACAN     53  1418         1235                 0.870945   
5     35  2019     OAXACA     92   393         2354                 5.989822   

   benef_div_permisos  
0           33.564516  
1            1.742515  
2            8.249462  
3            3.669935  
4           23.301887  
5           25.586957  
   index   año    Entidad  count   sum  count_benef  benef_div_embarcaciones  \
0     36  2020    CHIAPAS     69  1545        13082                 8.467314   
1     37  2020     COLIMA    129   348         1047                 3.008621   
2     38  2020   GUERRERO    383  1912        13799                 7.217050   
3     39  2020    JALISCO    272  5535         4702                 0.849503   
4     40  2020  MICHOACAN     35  1064         4642                 4.362782   
5     41  2020     OAXACA     75   305         6517                21.367213   

   benef_div_permisos  
0          189.594203  
1            8.116279  
2           36.028721  
3           17.286765  
4          132.628571  
5           86.893333  
   index   año       Entidad  count   sum  count_benef  \
0     30  2019      CAMPECHE    283   485       2857.0   
1     31  2019  QUINTANA ROO     16   135        332.0   
2     32  2019       TABASCO     94   556       3888.0   
3     33  2019    TAMAULIPAS    859  5780       2694.0   
4     34  2019      VERACRUZ    775  8371       8427.0   
5     35  2019       YUCATAN   3076  7682       1441.0   

   benef_div_embarcaciones  benef_div_permisos  
0                 5.890722           10.095406  
1                 2.459259           20.750000  
2                 6.992806           41.361702  
3                 0.466090            3.136205  
4                 1.006690           10.873548  
5                 0.187581            0.468466  
   index   año       Entidad  count   sum  count_benef  \
0     36  2020      CAMPECHE    237   420       9088.0   
1     37  2020  QUINTANA ROO     14    62       1203.0   
2     38  2020       TABASCO     80   520      12890.0   
3     39  2020    TAMAULIPAS    695  4436      15006.0   
4     40  2020      VERACRUZ    537  6754      24775.0   
5     41  2020       YUCATAN   2024  5311      13476.0   

   benef_div_embarcaciones  benef_div_permisos  
0                21.638095           38.345992  
1                19.403226           85.928571  
2                24.788462          161.125000  
3                 3.382777           21.591367  
4                 3.668197           46.135940  
5                 2.537375            6.658103  
Skipping Aguas Continentales
                entidad  incremento_bde  incremento_bdp  incremento_cambiorel  \
0       BAJA CALIFORNIA       20.540379       20.554739             13.645251   
1   BAJA CALIFORNIA SUR       10.063596        9.268614              5.700893   
2               NAYARIT        5.360866        4.804121              2.749883   
3               SINALOA        3.834970        4.189263              2.343915   
4                SONORA        8.869879        9.353974              3.001935   
5               CHIAPAS        5.348527        5.648650              2.143200   
6                COLIMA        4.135561        4.657796              2.597938   
7              GUERRERO        4.370492        4.367402              2.597237   
8               JALISCO        4.504712        4.710374              3.186999   
9             MICHOACAN        5.009251        5.691752              2.758704   
10               OAXACA        3.567254        3.396001              1.768479   
11             CAMPECHE        3.673250        3.798360              2.180959   
12         QUINTANA ROO        7.889866        4.141136              2.623494   
13              TABASCO        3.544852        3.895512              2.315329   
14           TAMAULIPAS        7.257778        6.884552              4.570156   
15             VERACRUZ        3.643820        4.242952              1.939955   
16              YUCATAN       13.526799       14.212577              8.351839   

    incremento_difrel  incremento_raw  
0            1.744331       14.645251  
1            1.480580        6.700893  
2            1.157874        3.749883  
3            1.079172        3.343915  
4            1.200310        4.001935  
5            1.034563        3.143200  
6            1.130045        3.597938  
7            1.129912        3.597237  
8            1.228841        4.186999  
9            1.159435        3.758704  
10           0.938564        2.768479  
11           1.043282        3.180959  
12           1.134853        3.623494  
13           1.073072        3.315329  
14           1.391186        5.570156  
15           0.984760        2.939955  
16           1.613595        9.351839  

Sociedades en PROPESCA

In [ ]:
print(propesca.columns)
sociedades_unicas=propesca['unidadeconmica'].unique()

print(propesca.shape)
print(len(sociedades_unicas))

#print(sociedades_unicas)
#print(*sociedades_unicas, sep='\n')

#generar filtros 
#count the number of times these strings appear in sociedades unicas, you can make it a df w a column, or just treat as strings 

#SC DE RL DE CV 
sociedades_scrlcv=sum('SC DE RL DE CV' in s for s in sociedades_unicas) #after this you will have to take these out to 
print(sociedades_scrlcv)
sociedades_menosSCRLCV=  [x for x in sociedades_unicas if not 'SC DE RL DE CV' in x]
#print(*sociedades_menosSCRLCV, sep='\n')
#SA DE CV 
sociedades_sadecv=sum('SA DE CV' in s for s in sociedades_unicas)
print(sociedades_sadecv)
sociedades_menos= [x for x in sociedades_menosSCRLCV if not 'SA DE CV' in x]
#SC DE RL
sociedades_scderl=sum('SC DE RL' in s for s in sociedades_menosSCRLCV)
sociedades_menos= [x for x in sociedades_menos if not 'SC DE RL' in x]
print(sociedades_scderl)
#SCL , Sociedad de Cooperativa Limitada 
sociedades_SCL=sum('SCL' in s for s in sociedades_unicas)
sociedades_menos= [x for x in sociedades_menos if not 'SCL' in x]
print(sociedades_SCL)
#SSS, Sociedades de Solidaridad Social
sociedades_SSS=sum('SSS' in s for s in sociedades_unicas)
sociedades_menos= [x for x in sociedades_menos if not 'SSS' in x]
print(sociedades_SSS)
#SCPP, Sociedades Cooperativas de Producción Pesquera (SCPP)
sociedades_SCPP= sum('SCPP' in s for s in sociedades_unicas)
sociedades_menos= [x for x in sociedades_menos if not 'SCPP' in x]
print(sociedades_SCPP)
#individuales
print(*sociedades_menos, sep='\n')
print(len(sociedades_menos))

#'srl de cv'
#'sc'
#'scrl de cv'
In [ ]:
print(union_propesca_bienpesca['año'])

# por regiones de pesca, tipo de pesca, etc.  
In [ ]:
print(propesca_update['año'].value_counts())
print(propesca_update['Genero'].value_counts())

print(propesca_update['Nombre Estado'].value_counts())
# restringir al GdM 
In [ ]:
print(ben_unicos_count2.dtypes)
print(ben_unicos_count2['Nombre del Beneficiario o Razon Social'].value_counts().sort_values())
In [ ]:
test=propesca_update[propesca_update.duplicated()]
print(propesca_update.duplicated())
print(test)
print(ben_unicos['sexo'].value_counts())
In [ ]:
a= [1, 2, 2,2]
b=[2, 2 ,2, 2]
c=[2, 4 ,4, 4]
data_test= pd.DataFrame(list(zip(a,b,c)) )
print(data_test)

print(data_test.duplicated())
print(data_test[data_test.duplicated()][0].value_counts())
In [ ]:
print(union_propesca_bienpesca2['Entidad'].value_counts(dropna=False))
print(union_propesca_bienpesca2['año'].value_counts(dropna=False))
union_propesca_bienpesca2.head()
In [ ]: